﻿using System;
using System.ComponentModel;
using System.Xml.Serialization;
using DevExpress.Xpo;
using DevExpress.Xpo.Metadata;
using DevExpress.Xpo.Helpers;
using DevExpress.Data.Filtering;
using DevExpress.ExpressApp;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;
namespace Top.Module.Domain
{
    [DefaultClassOptions]
    [Persistent("TopItemProp")]
    public class TopItemProp : BaseObject
    {
        //begin
        public TopItemProp()
        {}
        public TopItemProp(Session session) : base(session)
        {}
        public override void AfterConstruction(){base.AfterConstruction();}

        private bool _IsInputProp;
        public bool IsInputProp
        {
            get
            {
                return _IsInputProp;
            }
            set
            {
                SetPropertyValue("IsInputProp", ref _IsInputProp, value);
            }
        }
        private string _Pid;
        public string Pid
        {
            get
            {
                return _Pid;
            }
            set
            {
                SetPropertyValue("Pid", ref _Pid, value);
            }
        }
        private string _ParentPid;
        public string ParentPid
        {
            get
            {
                return _ParentPid;
            }
            set
            {
                SetPropertyValue("ParentPid", ref _ParentPid, value);
            }
        }
        private string _ParentVid;
        public string ParentVid
        {
            get
            {
                return _ParentVid;
            }
            set
            {
                SetPropertyValue("ParentVid", ref _ParentVid, value);
            }
        }
        private string _Name;
        public string Name
        {
            get
            {
                return _Name;
            }
            set
            {
                SetPropertyValue("Name", ref _Name, value);
            }
        }
        private bool _IsKeyProp;
        public bool IsKeyProp
        {
            get
            {
                return _IsKeyProp;
            }
            set
            {
                SetPropertyValue("IsKeyProp", ref _IsKeyProp, value);
            }
        }
        private bool _IsSaleProp;
        public bool IsSaleProp
        {
            get
            {
                return _IsSaleProp;
            }
            set
            {
                SetPropertyValue("IsSaleProp", ref _IsSaleProp, value);
            }
        }
        private bool _IsColorProp;
        public bool IsColorProp
        {
            get
            {
                return _IsColorProp;
            }
            set
            {
                SetPropertyValue("IsColorProp", ref _IsColorProp, value);
            }
        }
        private bool _IsEnumProp;
        public bool IsEnumProp
        {
            get
            {
                return _IsEnumProp;
            }
            set
            {
                SetPropertyValue("IsEnumProp", ref _IsEnumProp, value);
            }
        }
        private bool _IsItemProp;
        public bool IsItemProp
        {
            get
            {
                return _IsItemProp;
            }
            set
            {
                SetPropertyValue("IsItemProp", ref _IsItemProp, value);
            }
        }
        private bool _Must;
        public bool Must
        {
            get
            {
                return _Must;
            }
            set
            {
                SetPropertyValue("Must", ref _Must, value);
            }
        }
        private bool _Multi;
        public bool Multi
        {
            get
            {
                return _Multi;
            }
            set
            {
                SetPropertyValue("Multi", ref _Multi, value);
            }
        }
        [Association("TopItemPropPropValues", typeof(TopPropValue)), Aggregated]
        public XPCollection<TopPropValue> PropValues
        {
            get
            {
                return GetCollection<TopPropValue>("PropValues");
            }
        }
        private string _Status;
        public string Status
        {
            get
            {
                return _Status;
            }
            set
            {
                SetPropertyValue("Status", ref _Status, value);
            }
        }
        private long _SortOrder;
        public long SortOrder
        {
            get
            {
                return _SortOrder;
            }
            set
            {
                SetPropertyValue("SortOrder", ref _SortOrder, value);
            }
        }
        private string _ChildTemplate;
        public string ChildTemplate
        {
            get
            {
                return _ChildTemplate;
            }
            set
            {
                SetPropertyValue("ChildTemplate", ref _ChildTemplate, value);
            }
        }
        private bool _IsAllowAlias;
        public bool IsAllowAlias
        {
            get
            {
                return _IsAllowAlias;
            }
            set
            {
                SetPropertyValue("IsAllowAlias", ref _IsAllowAlias, value);
            }
        }
        //end
    }
}
